Moving picture encoding/decoding apparatus and method for processing of moving picture divided in units of slices

ABSTRACT

Disclosed is a moving picture encoding/decoding apparatus and method for processing of a moving picture, which is divided in units of slices. The encoding method includes the steps of: dividing a moving picture in units of slices when the moving picture is received; determining an encoding order of moving pictures divided in units of slices; and generating a bitstream by encoding moving pictures, which are divided in unites of slices, according to a corresponding order when the encoding order has been determined.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Continuation Application of U.S. application Ser.No. 13/128,723 filed May 11, 2011, which claims priority from NationalStage Application under 35 U.S.C. §371 of PCT/KR2009/006484 filed onNov. 5, 2009, which claims priority from Korean Patent Application No.10-2008-0111850 filed on Nov. 11, 2008 in the Korean IntellectualProperty Office, all the disclosures of which are incorporated herein intheir entireties by reference.

BACKGROUND

1. Field

Apparatuses and methods consistent with exemplary embodiments relate toa moving picture encoding/decoding apparatus and method for processingof a moving picture, which is divided in units of slices.

2. Description of the Related Art

In general, the amount of computation performed for motion estimationgreatly affects the total amount of computation required for coding. Forexample, when motion estimation is performed with one or moreforward/backward reference frames, as in the H.264/AVC compressionencoding scheme, the complexity thereof is very high. Especially, in thecase of an MPEG-4 AVC/H.264 compression video structure, when motionestimation with respect to a hierarchical B-picture is performed usingvarious blocks in order to achieve temporal scalability, the complexitythereof increases exponentially.

Meanwhile, recently, with the development of multi-core technology, agreater number of moving picture encoding/decoding apparatuses based onparallel processing have been developed. According to a parallelprocessing method using H.264/AVC, which is a recent moving picturecompression standard, an image is divided into regions, each of which iscalled a “slice,” and each slice image region is individually encoded ordecoded in each process or thread. Since the parallel processing methoddoes not require information to be shared and transferred between imageregions of slices, into which an image is divided, the parallelprocessing method has advantages in that the implementation thereof iseasy and the efficiency of parallel processing is excellent.

FIG. 1 is a block diagram schematically illustrating the configurationof a conventional moving picture encoding apparatus for processing amoving picture divided in units of slices.

The moving picture encoding apparatus includes a memory 10, a multi-coreprocessor 20, an MPEG data division module 30, and a decoding/mergingmodule 40.

According to the conventional moving picture encoding apparatus,one-frame data of a bitstream encoded by an MPEG algorithm is stored inthe memory 10, is allocated as threads to cores within the multi-coreprocessor 20, is decoded, and is then merged.

The multi-core processor 20 includes a plurality of cores, i.e. centralprocessing units (CPUs), which operate thread by thread, wherein eachcore operates independently. The memory 10 includes a plurality ofbuffers which store individual slices (e.g. slice 1, slice 2, . . . ,slice N) received from the MPEG data division module 30, and provide thestored slices to cores (core 1, core 2, . . . , core N) of themulti-core processor 20.

The MPEG data division module 30, when receiving MPEG data, extractsdecoding information, divides the received MPEG data into slices, anddistributes decoding processes for bitstreams based on the dividedindividual slice units to the cores in the multi-core processor asthreads. To this end, the MPEG data division module 30 includes a headerparser 32, a slice divider 34, a core computing load measurer 36, and adistributor 38.

The header parser 32 receives MPEG data in the form of a bitstream, andperforms a basic header parsing operation, such as extraction ofdecoding information. In addition, the header parser 32 divides andallocates the region of the memory 10 so as to prepare the buffers forthe slices. That is, the header parser 32 divides the region of thememory 10 into a plurality of buffers so as to correspond to the coresof the multi-core processor 20, and allocates the buffers to the cores.

The slice divider 34 detects a slice start code within a bitstream anddivides the bitstream in units of slices. The distributor 38 properlydistributes bitstreams divided in units of slices to the buffers. Thecore computing load measurer 36 measures a computing occupancy of eachcore.

Meanwhile, referring to FIG. 1, many moving picture codecs use aparallel processing scheme of dividing an image into slices andallocating the slices to cores, respectively, in order to supportparallel processing in a multi-core environment. However, such a schemedegrades the encoding performance as a whole, as compared with a schemeof encoding the entire image.

Therefore, there is a necessity for a parallel processing-based movingpicture encoding/decoding apparatus which can enhance the efficiency inencoding or decoding of a moving picture through an efficient slicedivision.

SUMMARY

One or more exemplary embodiments provide a moving pictureencoding/decoding apparatus and method for processing of a movingpicture, which is divided in units of slices.

In accordance with an aspect of an exemplary embodiment, there isprovided a moving picture encoding apparatus for processing a movingpicture which is divided in units of slices; the apparatus including: aslice divider which divides an input image into image slices in units ofslices; an image encoder including a plurality of encoding units whichreceive and encode the image slices, respectively; a bitstream generatorwhich generates a bitstream through use of the encoded image slices; anda synchronization controller which determines an encoding order of theimage slices, and controlling the encoding units to encode the imageslices in parallel according to the encoding order.

In accordance with another exemplary embodiment, there is provided amoving picture decoding apparatus for processing a moving picture whichis divided in units of slices; the apparatus including: a slice dividerwhich divides an input bitstream into bitstream slices in units ofslices; an image decoder including a plurality of decoding units whichreceive and decode the bitstream slices, respectively; and asynchronization controller which determines a decoding order of thebitstream slices, and controlling the decoding units to decode thebitstream slices in parallel according to the decoding order.

In accordance with another aspect of an exemplary embodiment, there isprovided an encoding method by a moving picture encoder which includes aplurality of encoding units for processing a moving picture divided inunits of slices, the method including the steps of: dividing an inputimage into image slices in units of slices; determining an encodingorder of a plurality of macroblocks included in the image slices intowhich the input image is divided; simultaneously encoding the respectiveimage slices according to the encoding order through use of the encodingunits; and generating a bitstream through use of the encoded imageslices.

In accordance with another aspect of an exemplary embodiment, there isprovided a decoding method by a moving picture decoder which includes aplurality of decoding units for processing a moving picture divided inunits of slices, the method including: dividing an input bitstream intobitstream slices in units of slices; determining a decoding order of aplurality of macroblocks included in the bitstream slices into which theinput bitstream is divided; and simultaneously decoding the respectivebitstream slices according to the decoding order through use of thedecoding units.

According to another aspect of an exemplary embodiment it is possible toincrease the encoding efficiency through the sharing of partialinformation between image slices.

According to yet another aspect of an exemplary embodiment it ispossible to process a moving picture divided in units of slices.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and/or other aspects, features and advantages of the exemplaryembodiments will be more apparent from the following detaileddescription taken in conjunction with the accompanying drawings, inwhich:

FIG. 1 is a block diagram schematically illustrating the configurationof a conventional moving picture encoding apparatus for processing amoving picture divided in units of slices;

FIG. 2 is a block diagram schematically illustrating the configurationof a moving picture encoding apparatus for processing a moving picturedivided in units of slices according to an exemplary embodiment;

FIG. 3 is a block diagram schematically illustrating the configurationof a moving picture decoding apparatus for processing a moving picturedivided in units of slices according to an exemplary embodiment;

FIG. 4 is a flowchart illustrating a moving picture encoding method forprocessing a moving picture divided in units of slices according to anexemplary embodiment;

FIG. 5 is a flowchart illustrating a moving picture decoding method forprocessing a moving picture divided in units of slices according to anexemplary embodiment;

FIG. 6 is a view illustrating a moving picture encoding order in imageslices according to an exemplary embodiment; and

FIGS. 7 to 13 are views illustrating moving picture encoding orders inimage slices according to other exemplary embodiments.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Hereinafter, exemplary embodiments will be described with reference tothe accompanying drawings. In the following description, the sameelements will be designated by the same reference numerals although theyare shown in different drawings. In addition, in the followingdescription of the exemplary embodiments, a detailed description ofknown functions and configurations incorporated herein will be omittedwhen it may make the subject matter of the exemplary embodiments ratherunclear.

FIG. 2 is a block diagram schematically illustrating the configurationof a moving picture encoding apparatus for processing a moving picturedivided in units of slices according to an exemplary embodiment.

The moving picture encoding apparatus 50 includes a slice divider 60, animage encoder 70, a synchronization controller 90, and a bitstreamgenerator 80.

The slice divider 60 divides an image, which is input to the movingpicture encoding apparatus 50, in units of slices, thereby generatingimage slices. In the following description, image slices representimages obtained by dividing an image in units of slices. The slicedivider 60 can divide an input image into image slices and determine anencoding order for the image slices so that information can be sharedbetween image slices.

In this case, sharing information between image slices signifies that,when the image encoder 70 encodes image slices, each image encoding unitmakes reference to a pre-encoded image slice or an image slice, otherthan an image slice allocated to the image encoding unit itself, inorder to encode the allocated image slice, wherein the image encoder 70will be described later. For example, when a third image encoding unit70-3 encodes a third image slice, the third image encoding unit 70-3 maymake reference to a second image slice encoded in advance, or makereference to a first image slice encoded by a second image encoding unit70-2.

The image encoder 70 receives at least one image slice obtained bydividing an image in units of slices by the slice divider 60, andencodes the received image slice. The image encoder 70 includes thefirst image encoding unit 70-1, the second image encoding unit 70-2, thethird image encoding unit 70-3, . . . , an N^(th) image encoding unit70-N, which receive and encode a first image slice, a second imageslice, a third image slice, . . . , an N^(th) image slice, respectively.

As described above, when each image encoding unit encodes an image sliceallocated to the image encoding unit itself, the image encoding unit mayencode the allocated image slice by making an image slice, other thanthe allocated image slice. In this case, when making reference toanother image slice, the image encoder 70 may make reference toinformation on each image slice in units of macroblocks included in eachimage slice.

For example, when the second image encoding unit 70-2 encodes a fifthimage slice allocated to the second image encoding unit 70-2, the secondimage encoding unit 70-2 may make reference to a fourth macroblock in afourth image slice currently being encoded by the third image encodingunit. Information to which the image encoder 70 makes reference from animage slice or a macroblock included in an image slice includes, forexample, motion estimation information according to each frame, a motionvector of each macroblock, and the number of coefficients, and suchinformation may be stored in a memory (not shown) included in the movingpicture encoding apparatus 50. As described above, the image encodingunits shares information between image slices with each other, therebyincreasing the encoding efficiency.

The bitstream generator 80 receives each encoded image slice from thefirst image encoding unit 70-1 through the N^(th) image encoding unit70-N, and generates a bitstream.

When the image encoder 70 encodes image slices, the synchronizationcontroller 90 synchronizes encoding time points of macroblocks includedin the image slices. Each image slice includes at least one macroblock.The synchronization controller 90 according to an exemplary embodimentcan simultaneously control the encoding time points of macroblocksincluded in image slices.

For example, it is assumed that a first image slice includes a firstmacroblock, a second macroblock, and a third macroblock, and a secondimage slice includes a fourth macroblock, a fifth macroblock, and asixth macroblock. In addition, it is assumed that the first image sliceis encoded by the first image encoding unit 70-1, and the second imageslice is encoded by the second image encoding unit 70-2. Thesynchronization controller 90 according to an exemplary embodiment cancontrol the first image encoding unit 70-1 and the second image encodingunit 70-2 such that the first macroblock of the first image slice andthe fourth macroblock of the second image slice can be simultaneouslyencoded.

FIG. 3 is a block diagram schematically illustrating the configurationof a moving picture decoding apparatus for processing a moving picturedivided in units of slices according to an exemplary embodiment.

According to an exemplary embodiment, the moving picture decodingapparatus 100 includes a bitstream parser 110, the slice divider 60, animage decoder 120, an image generator 130, and the synchronizationcontroller 90.

The bitstream parser 110 parses a bitstream input to the moving picturedecoding apparatus 100.

The slice divider 60 divides the bitstream, which has been parsed by thebitstream parser 110, in units of slices, thereby generating bitstreamslices. Hereinafter, each bitstream obtained by dividing a bitstream inunits of slices will be referred to as a “bitstream slice.” The slicedivider 60 may determine a decoding order of bitstream slices obtainedby dividing a bitstream in units of slices. The slice divider 60transfers first to N^(th) bitstream slices to the image decoder 120according to the decoding order.

The image decoder 120 decodes at least one bitstream slice which isinput in the order determined by the slice divider 60. The image decoder120 includes a first image decoding unit 120-1, a second image decodingunit 120-2, . . . , an N^(th) image decoding unit 120-N, which receiveand decode a first bitstream slice, a second bitstream slice, . . . , anNth bitstream slice, respectively.

The image generator 130 receives each decoded bitstream slice, andgenerates an image. In this case, the generated image may be an imagedivided into image slices by the moving picture encoding apparatus 50,and may be output and/or reproduced through a display unit (not shown)provided in advance in the moving picture decoding apparatus 100according to an exemplary embodiment.

When the image decoder 120 decodes bitstream slices, the synchronizationcontroller 90 synchronizes decoding time points of macroblocks includedin the bitstream slices. The synchronization controller 90 according toan exemplary embodiment can simultaneously control the decoding timepoints of macroblocks included in the bitstream slices.

For example, it is assumed that a first bitstream slice includes a firstmacroblock, a second macroblock, and a third macroblock, and a secondbitstream slice includes a fourth macroblock, a fifth macroblock, and asixth macroblock. In addition, it is assumed that the first bitstreamslice is decoded by the first image decoding unit 120-1, and the secondbitstream slice is decoded by the second image decoding unit 120-2. Thesynchronization controller 90 can control the first image decoding unit120-1 and the second image decoding unit 120-2 such that the firstmacroblock of the first bitstream slice and the fourth macroblock of thesecond bitstream slice can be simultaneously decoded.

FIG. 4 is a flowchart illustrating a moving picture encoding method forprocessing a moving picture divided in units of slices according to anexemplary embodiment.

In step 140, the slice divider 60 divides an image, which is input tothe moving picture encoding apparatus 50, into image slices based on aslice unit. In step 142, the slice divider 60 allocates the image slicesto the image encoder 70, i.e. the image encoding units.

Thereafter, in step 144, the moving picture encoding apparatus 50encodes the image slices in parallel while controlling the encoding timepoint of each image slice. In this case, controlling the encoding timepoint of each image slice is performed by the synchronization controller90, and encoding the image slices in parallel is performed by the imageencoder 70.

When the image slices have been encoded, the bitstream generator 80generates a bitstream through the use of the encoded image slices instep 146. In step 148, the moving picture encoding apparatus 50 outputsthe generated bitstream.

FIG. 5 is a flowchart illustrating a moving picture decoding method forprocessing a moving picture divided in units of slices according to anexemplary embodiment.

In step 150, the slice divider 60 divides a bitstream, which is input tothe moving picture decoding apparatus 100, into bitstream slices basedon a slice unit. In step 152, the slice divider 60 allocates thebitstream slices to the image decoder 120, i.e. the image decodingunits.

Thereafter, in step 154, the moving picture decoding apparatus 100decodes the bitstream slices in parallel while controlling the decodingtime point of each bitstream slice. In this case, controlling thedecoding time point of each bitstream slice is performed by thesynchronization controller 90, and decoding the bitstream slices inparallel is performed by the image decoder 120.

When the bitstream slices have been decoded, the image generator 130generates an image through the use of the decoded bitstream slices instep 156. In step 158, the moving picture decoding apparatus 100 outputsthe generated image through a display unit (not shown) provided inadvance.

Therefore, according to the exemplary embodiments described above, amoving picture divided in units of slices can be processed.

FIG. 6 is a view illustrating a moving picture encoding order in imageslices according to an exemplary embodiment.

FIG. 6 shows one frame of a moving picture. Referring to FIG. 6, oneframe includes a first image slice 162, a second image slice 164, athird image slice 166, a fourth image slice 168, and a fifth image slice170. In addition, each of image slices 162, 164, 166, 168, and 170includes 20 macroblocks.

It is assumed that a first image encoding unit 70-1 encodes the firstimage slice 162, a second image encoding unit 70-2 encodes the secondimage slice 164, a third image encoding unit 70-3 encodes the thirdimage slice 166, a fourth image encoding unit 70-4 encodes the fourthimage slice 168, and a fifth image encoding unit 70-5 encodes the fifthimage slice 170.

According to an exemplary embodiment, the first image encoding unit 70-1encodes macroblocks included in the first image slice 162 in the orderof “162-1(t ₁)”, “162-2(t ₂)”, “162-3(t ₃)”, “162-4(t ₄)”, “162-5(t ₅)”,“162-6(t ₆)”, “162-7(t ₇)”, “162-8(t ₈)”, . . . , “162-N(t _(N))”.Similarly, the second image encoding unit 70-2 encodes macroblocksincluded in the second image slice 164 in the order of “164-5(t ₅)”,“164-6(t ₆)”, “164-7(t ₇)”, “164-8(t ₈)”, “164-9(t ₉)”, “164-10(t ₁₀)”,“164-11(t ₁₁)”, “164-12(t ₁₂)”, “164-13(t ₁₃)”, . . . , “164-N(t_(N))”;the third image encoding unit 70-3 encodes the third image slice 166 inthe order of “166-9(t ₉)”, “166-10(t ₁₀)”, “166-11(t ₁₁)”, “166-12(t₁₂)”, “166-13(t ₁₃)”, “166-14(t ₁₄)”, “166-15(t ₁₅)”, “166-16(t ₁₆)”, .. . , “166-N((t_(N))”; the fourth image encoding unit 70-4 encodes thefourth image slice 168 in the order of “168-13(t ₁₃)”, “168-14(t ₁₄)”,“168-15(t ₁₅)”, “168-16(t ₁₆)”, “168-17(t ₁₇)”, “168-18(t ₁₈)”,“168-19(t ₁₉)”, “168-20(t ₂₀)”, . . . , “168-N(t_(N))”; and the fifthimage encoding unit 70-5 encodes the fifth image slice 170 in the orderof “170-17(t ₁₇)”, “170-18(t ₁₈)”, “170-19(t ₁₉)”, “170-20(t ₂₀)”,“170-21(t ₂₁)”, “170-22(t ₂₂)”, . . . , “170-N(t_(N))”. In the abovedescription, each numeral expressed in parentheses represents anencoding time point of each corresponding macroblock. For example,macroblock 170-21 starts to be encoded at time point t₂₁ by the fifthimage encoding unit 70-5.

Referring to FIG. 6, the first image encoding unit 70-1 encodesmacroblock 162-1(t ₁) first of all. Since macroblock 162-1(t ₁), whichis a macroblock (hereinafter, referred to as an “adjacent macroblock”)adjacent to macroblock 162-2(t ₂), has already been encoded, the firstimage encoding unit 70-1 can make reference to macroblock 162-1(t ₁)when encoding macroblock 162-2(t ₂). Similarly, the first image encodingunit 70-1 encodes macroblock 162-3(t ₃) by making reference tomacroblocks 162-1(t ₁) and 162-2(t ₂). Also, when macroblock 162-3(t ₃)has been encoded, the first image encoding unit 70-1 encodes macroblock162-4(t ₄) by making reference to macroblocks 162-1(t ₁), 162-2(t ₂),and 162-3(t ₃), which correspond to adjacent macroblocks of macroblock162-4(t ₄). Also, in the same manner, the first image encoding unit 70-1encodes macroblock 162-5(t ₅) by making reference to macroblocks 162-3(t₃) and 162-4(t ₄). Here, the range of adjacent macroblocks may bedetermined in such a manner that, for example, referring to FIG. 6, theadjacent macroblocks of macroblock 164-4 in the second image slice 164correspond to macroblocks 162-1, 162-2, 162-3, 164-3, 164-5, 166-5,166-6, and 166-7.

In addition, when adjacent macroblocks 162-2(t ₂) and 162-4(t ₄) ofmacroblock 164-5(t ₅) have been encoded, the second image encoding unit70-2 can encode macroblock 164-5(t ₅). That is, a time point at whichthe first image encoding unit 70-1 encodes macroblock 162-5(t ₅) and atime point at which the second image encoding unit 70-2 encodesmacroblock 164-5(t ₅) become equal t₀each other. In this case, thesynchronization controller 90 controls the first image encoding unit70-1 and the second image encoding unit 70-2 so that a time point atwhich the first image encoding unit 70-1 encodes macroblock 162-5(t ₅)can be equal to a time point at which the second image encoding unit70-2 encodes macroblock 164-5(t ₅).

Similarly, when macroblocks 164-6(t ₆) and 164-8(t ₈) have been encoded,the third image encoding unit 70-3 can encode macroblock 166-9(t ₉).While the third image encoding unit 70-3 encodes macroblock 166-9(t ₉),the first image encoding unit 70-1 encodes macroblock 162-9(t ₉), andthe second image encoding unit 70-2 encodes macroblock 164-9(t ₉).

As described above, the exemplary embodiments provide the moving pictureencoding apparatus 50, which can process image slices allocated to eachimage encoding unit in such a manner as to encode a plurality of imageslices at the same time. The method for allocating image slices andencoding macroblocks, as described above, can be applied even to themoving picture decoding apparatus 100 according to the exemplaryembodiment. In addition, an image slice division scheme, an encodingorder of macroblocks, and an encoding scheme thereof, which will bedescribed later with reference to FIG. 7, can be applied to the movingpicture decoding apparatus 100, too.

For example, a time point at which the second image decoding unit 120-2decodes macroblock 164-9(t ₉) and a time point at which the third imagedecoding unit 120-3 decodes macroblock 166-9(t ₉) are equal to eachother.

FIGS. 7 to 12 are views illustrating moving picture encoding orders inimage slices according to other exemplary embodiments.

FIG. 7 shows a frame including five image slices 162, 164, 166, 168, and170, as shown in FIG. 6. Referring to FIG. 7, the image encoder 70encodes macroblocks, which are included in each image slice 162, 164,166, 168, and 170, in a Z-shape along a horizontal direction within eachcorresponding image slice.

In FIG. 7, the first image encoding unit 70-1 encodes macroblock162-11(t ₁₁) by making reference to macroblocks 162-9(t ₉) and 162-10(t₁₀) at the same time as the second image encoding unit 70-2 encodesmacroblock 164-11(t ₁₁) by making reference to pre-encoded macroblocks162-7(t ₇), 162-8(t ₈), 164-9(t ₉), and 164-10(t ₁₀). Also, in thiscase, the third image encoding unit 70-3 encodes macroblock 166-11(t ₁₁)by making reference to pre-encoded macroblocks 164-7(t ₇), 164-8(t ₈),166-9(t ₉), and 166-10(t ₁₀). In the same manner, the fourth imageencoding unit 70-4 encodes macroblock 168-13(t ₁₃), which is included inthe fourth image slice 168, through the use of macroblocks 166-11(t ₁₁)and 166-12(t ₁₂) included in the third image slice 166. In this case, itis assumed that one or more pre-encoded macroblocks have been stored ina memory (not shown) provided in advance in the moving picture encodingapparatus 50.

FIG. 8 is a view illustrating a frame including 10 image slices. Eachimage slice shown in FIG. 8 includes 10 macroblocks, differently fromthe image slices shown in FIGS. 6 and 7. According to the exemplaryembodiment of FIG. 8, a macroblock can be encoded by making reference toat least one adjacent macroblock when the adjacent macroblock has beenencoded in advance, similar to the cases of FIGS. 6 and 7.

For example, when macroblock 162-1 in a first image slice has beenencoded, the first image encoding unit 70-1 can encode macroblock 162-2,which is an adjacent macroblock of macroblock 162-1. Also, whenmacroblocks 162-1 and 162-2 have been encoded, the first image encodingunit 70-1 can encode macroblock 162-3.

Referring to FIG. 8, when macroblocks 162-1 and 162-2 have been encoded,the synchronization controller 90 synchronizes the first image encodingunit 70-1 and the second image encoding unit 70-2 to encode macroblocks162-3 and 164-3 at the same time. Also, when macroblocks 162-4 and 164-4have been encoded by the first image encoding unit 70-1 and second imageencoding unit 70-2, the synchronization controller 90 synchronizes thefirst image encoding unit 70-1, the second image encoding unit 70-2, andthe third image encoding unit 70-3 to encode macroblocks 162-5, 164-5,and 166-5 at the same time.

The synchronization controller 90 controls a time point at which eachimage encoding unit encodes each macroblock in such a manner asdescribed above, thereby controlling the image encoder 70, whichincludes a plurality of cores (not shown) and buffers (not shown), toefficiently encode an image divided in units of slices.

FIGS. 9 to 12 show cases where a frame having 10×10 macroblocks in thehorizontal and vertical directions is divided into image slices invarious manners. Referring to FIGS. 9 to 12, it can be understood thatthe encoding order of macroblocks included in image slices may varydepending on image division schemes.

Referring to FIG. 9, ten macroblocks in the vertical direction among10×10 macroblocks correspond to a first image slice 162; ninemacroblocks in the horizontal direction among the remaining macroblocks,except for the first image slice 162, correspond to a second image slice164; and nine macroblocks in the vertical direction among the remainingmacroblocks, except for the first image slice 162 and the second imageslice 164, correspond to a third image slice 166. That is, one frame ofan image input to the moving picture encoding apparatus 50 is divided inunits of slices in alternating the vertical and horizontal directions.

Also, referring to FIG. 9, each image slice is encoded in such a mannerthat, after macroblock 162-1(t ₁) in the first image slice 162 has beenencoded, macroblocks 162-2(t ₂) and 164-2(t ₂) are simultaneouslyencoded, macroblocks 162-3(t ₃), 164-3(t ₃), and 166-3(t ₃) aresimultaneously encoded, and then macroblocks 162-4(t ₄), 164-4(t ₄),166-4(t ₄), and 168-4(t ₄) are simultaneously encoded.

In the case of a frame shown in FIG. 10, after macroblock 162-1(t ₁) ina first image slice 162 is encoded first, macroblock 162-2(t ₂) in thefirst image slice 162, macroblock 164-2(t ₂) in a second image slice164, and macroblock 166-2(t ₂) in a third image slice 166 are encoded.Thereafter, the synchronization controller 90 according to an exemplaryembodiment controls the image encoder 70 to encode macroblock 162-3(t ₃)in the first image slice 162, macroblock 164-3(t ₃) in the second imageslice 164, macroblock 166-3(t ₃) in the third image slice 166, andmacroblock 168-3(t ₃) in a fourth image slice 168. The image encoder 70encodes a plurality of image slices, which are included in a frame, inparallel in the aforementioned manner under the control of thesynchronization controller 90.

FIGS. 11 and 12 illustrate encoding orders of image slices when oneframe includes four image slices 162, 164, 166, and 168.

Referring to FIG. 11, first, macroblocks 162-1(t ₁), 162-2(t ₂), 162-3(t₃), 162-4(t ₄), and 162-5(t ₅) in a first image slice 162 are encoded inregular sequence, and macroblocks 166-2(t ₂), 166-3(t ₃), 166-4(t ₄),166-5(t ₅), and 166-6(t ₆) in a third image slice 166 are encoded inregular sequence. When macroblock 162-5(t ₅) in the first image slice162 and macroblock 166-5(t ₅) in the third image slice 166 have beenencoded, the second image encoding unit 70-2 can encode macroblock164-6(t ₆) in a second image slice 164 by making reference to macroblock162-5(t ₅). Also, when macroblock 164-6(t ₆) in the second image slice164 has been encoded, the fourth image encoding unit 70-4 can encodemacroblock 168-7(t ₇) in a fourth image slice by making reference tomacroblock 162-5(t ₅), macroblock 164-6(t ₆), and macroblock 166-6(t ₆)in the third image slice 166, wherein macroblock 166-6(t ₆) is encodedat the same time as macroblock 164-6(t ₆).

Referring to FIG. 12, it can be understood that macroblock 162-1 of afirst image slice 162 is positioned in the center of a frame.Accordingly, when macroblock 162-1(t ₁) is encoded by the first imageencoding unit 70-1, it is possible to encode macroblock 164-2 of asecond image slice and macroblock 166-2 of a third image slice, whichcorrespond to adjacent macroblocks of macroblock 162-1. The movingpicture encoding apparatus 50 according to an exemplary embodimentprogresses the encoding in a direction from the center of the frame tothe edge of the frame.

FIG. 13 is a view illustrating a case where the moving picture encodingapparatus 50 performs the encoding of macroblocks in a sequenceprogressing in the form of a spiral.

According to another exemplary embodiment shown in FIG. 13, a frameincludes a first image slice 162, a second image slice 164, a thirdimage slice 166, and a fourth image slice 168, wherein each image slicehas the form of a spiral. According to the exemplary embodiment shown inFIG. 13, encoding is performed in such a manner that macroblocks 162-1(t₁), 164-1(t ₁), 166-1(t ₁), and 168-1(t ₁) are encoded at the same time;macroblocks 162-2(t ₂), 164-2(t ₂), 166-2(t ₂), and 168-2(t ₂) areencoded at the same time; and then macroblocks 162-3(t ₃), 164-3(t ₃),166-3(t ₃), and 168-3(t ₃) are encoded at the same time.

The image slice division methods as described above are just exemplaryembodiments, and various modifications, additions and substitutions arepossible to increase the encoding efficiency through the sharing ofpartial information between image slices. Therefore, the aspects of theexemplary embodiments are not limited to the aforementioned exemplaryembodiments and accompanying drawings. In addition, it will beunderstood by those skilled in the art that, when macroblocks areencoded, the subjects of pre-encoded adjacent macroblocks may change inform and detail depending on image slice division schemes.

What is claimed is:
 1. A decoding apparatus, the apparatus comprising: acontroller configured to obtain information related to a block from abitstream, to divide a frame into a plurality of blocks based on theinformation related to the block, the plurality of blocks comprising atleast two rows, and to obtain decoding information by decoding a secondblock in a first row, a decoder configured to decode a third block inthe first row and a first block in a second row using the decodinginformation, wherein the decoding information includes predictioninformation.
 2. The apparatus of claim 1, wherein the third block in thefirst row and the first block in the second row are decoded in parallel.3. The apparatus of claim 1, wherein the information related to theblock includes split information.